package com.jxpanda.spring.module.pay.core.service;

import com.jxpanda.spring.module.pay.core.pojo.PaymentRequest;
import com.jxpanda.spring.module.pay.core.pojo.PaymentResponse;

/**
 * 统一交易接口
 * 其实就是一个适配器，把微信、支付宝的接口适配到一起
 * <br>
 * 这个接口只计划支持支付相关的功能，例如微信红包、商户转账的功能由其他接口来编写
 *
 * @author panda
 */
public interface ReactivePaymentService<T extends PaymentRequest, R extends PaymentResponse> {

    /**
     * 创建支付订单
     *
     * @param transactionRequest 支付请求
     * @return 支付响应
     */
    R createTransaction(T transactionRequest);

    /**
     * 查询支付订单
     */
    R queryTransaction();

    /**
     * 关闭订单
     */
    R closeTransaction();

    /**
     * 退款
     */
    R refundTransaction();


}
